using System;
using System.Collections.Generic;
using System.Text;
using BuildingBasicDomain;
using CommonTypes;


namespace BuildingStructuralElements.Load.Slab_Loads
{

    public class ConcentratedLoad 
    {
        // Storing force intensity.
        FieldWithUndo m_Intensity;

        public double Intensity
        {
            get { return (double)m_Intensity.Value; }
            set { m_Intensity.Value = value; }
        }

        public bool m_Is_Mirror;

        public bool Is_Mirror
        {
            get { return m_Is_Mirror; }
            set { m_Is_Mirror = value; }
        }

        public bool m_Is_Action;

        public bool Is_Action
        {
            get { return m_Is_Action; }
            set { m_Is_Action = value; }
        }

        FieldWithUndo m_b_con_trans;

        public double b_con_trans
        {
            get { return (double)m_b_con_trans.Value; }
            set { m_b_con_trans.Value = value; }
        }

        FieldWithUndo m_b_con_long;

        public double b_con_long
        {
            get { return (double)m_b_con_long.Value; }
            set { m_b_con_long.Value = value; }
        }

        private bool m_IsAutomatic;

        public bool IsAutomatic
        {
            get { return m_IsAutomatic; }
            set { m_IsAutomatic = value; }
        }

        public ConcentratedLoad(Vector position, double intensity, double bConLong, double bConTrans)

        {
            m_Intensity = new FieldWithUndo(this);
            m_b_con_long = new FieldWithUndo(this);
            m_b_con_trans = new FieldWithUndo(this);

            m_Intensity.Value = intensity;
            m_b_con_long.Value = bConLong;
            m_b_con_trans.Value = bConTrans;

            m_IsAutomatic = false;
            Is_Mirror = false;
            m_Is_Action = false;
        }

     

        public void SetIntensity(double val)
        {
            m_Intensity.SetNewValue(val);
        }
        public void Setb_con_long(double val)
        {
            m_b_con_long.SetNewValue(val);
        }
        public void Setb_con_trans(double val)
        {
            m_b_con_trans.SetNewValue(val);
        }
    }


    //Definition without fieldwithUndo
    /*
    class ConsetratedLoad
    {

        // Storing force intensity.
		double  m_Intensity;

		public double Intensity
		{
			get { return (double)m_Intensity; }
			set { m_Intensity = value; }
		}
        

		public bool m_Is_Mirror;

		public bool Is_Mirror
		{
			get { return m_Is_Mirror; }
			set { m_Is_Mirror = value; }
		}
        

		public bool m_Is_Action;

		public bool Is_Action
		{
			get { return m_Is_Action; }
			set { m_Is_Action = value; }
		}
        

		double m_b_con_trans;

		public double b_con_trans
		{
			get { return (double)m_b_con_trans; }
			set { m_b_con_trans = value; }
		}
        
		double m_b_con_long;

		public double b_con_long
		{
			get { return (double)m_b_con_long; }
			set { m_b_con_long = value; }
		}
        
		private bool m_IsAutomatic;

		public bool IsAutomatic
		{
			get{ return m_IsAutomatic; }
			set{ m_IsAutomatic = value; }
		}



		/// <summary>
		/// Constructor
		/// </summary>
        /// 
        
		public ConsetratedLoad( Vector position, double intensity, double bConLong, double bConTrans) 
			
		{

			m_Intensity	= intensity;
			m_b_con_long	= bConLong;
			m_b_con_trans	= bConTrans;

			m_IsAutomatic	= false;
			Is_Mirror = false;
			m_Is_Action = false;
		}


		public void SetIntensity(double val)
		{
			m_Intensity = val;
		}
		public void Setb_con_long(double val)
		{
			m_b_con_long = val;
		}
		public void Setb_con_trans(double val)
		{
            m_b_con_trans=val;

		}
   
    } 
     */
}
